Skip to content

feat(desktop): M6 skeleton — Electron main + preload + React renderer#31

Merged
oratis merged 1 commit into
mainfrom
feat/m6-electron-skeleton
May 28, 2026
Merged

feat(desktop): M6 skeleton — Electron main + preload + React renderer#31
oratis merged 1 commit into
mainfrom
feat/m6-electron-skeleton

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

Replaces M0 placeholders with real Electron main + preload + React renderer (Onboarding + REPL + UpdateBanner). Type-checks cleanly. Electron binary install deferred to M6-rest to keep CI install fast. 476 tests still passing.

Replaces the M0 placeholder files in apps/desktop/ with the real skeleton.
Type-checks cleanly via tsc -p tsconfig.json (renderer). Compiling the
Electron main/preload requires installing `electron` (deferred to M6-rest
PR to keep CI install fast); tsconfig.electron.json is ready when added.

  · electron/main.ts — BrowserWindow + IPC (app:version, creds:load/save,
    settings:load) + lazy-loaded electron-updater hook.
  · electron/preload.ts — contextBridge exposes window.deepcode = {
    version, creds, settings, onUpdateDownloaded }.
  · src/main.tsx — React 18 createRoot.
  · src/App.tsx — Onboarding gate → Repl, with UpdateBanner.
  · src/screens/Onboarding.tsx — API key form, persists via window.deepcode.
  · src/screens/Repl.tsx — chat list + input box placeholder.
  · src/components/UpdateBanner.tsx — "Relaunch to update vX.Y.Z" with
    Later/Relaunch buttons.
  · src/types/global.d.ts — TS types for window.deepcode.
  · src/index.css — hand-rolled utility classes covering the Tailwind-
    flavored markup; real Tailwind in M6-rest.
  · tsconfig.json — switched to jsx:"react-jsx", noEmit, exclude electron.
  · tsconfig.electron.json — separate config for compiling main/preload to
    CommonJS once electron dep is installed.
  · package.json — added react/react-dom + types as devDeps; vitest stub.

Tests: no new tests in this PR (the skeleton is structural; integration
tests arrive with Vite + Tailwind toolchain in M6-rest). Existing 476
passing, build clean across all 4 packages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit 8f8d3c9 into main May 28, 2026
@oratis oratis deleted the feat/m6-electron-skeleton branch May 28, 2026 06:13
oratis added a commit that referenced this pull request May 28, 2026
…ills/Permissions/About) (#51)

All 11 planned desktop screens now have real React implementations:
  · Onboarding ✅ (PR #31)
  · REPL ✅ (PR #31)
  · Chat ✅ (PR #49)
  · Sessions ✅ (PR #49)
  · MCPManager ✅ (PR #49)
  · Settings ✅ (PR #49)
  · FilePanel ← NEW (tab bar, source/diff/history view switcher, Monaco
    placeholder for M7)
  · Plugins ← NEW (list + install spec input + per-plugin enable/disable
    + trust badge + warnings)
  · Skills ← NEW (sidebar list + filter + body viewer with frontmatter
    metadata)
  · Permissions ← NEW (deny/ask/allow buckets + add-rule form, view-only
    preview until IPC save lands)
  · About ← NEW (version + diagnostics + links to docs)

Nav top bar updated with all 9 navigable screens (FilePanel is contextual,
not nav-toggleable). App.tsx renders via switch.

Plus a batch of utility CSS classes used by these screens (ml-auto,
overflow-auto, hover:underline, select styling, etc.).

Tests: 508 still passing. Build clean across all 4 packages.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant